<?xml version="1.0" encoding="utf-8"?>
<!--
// <copyright file="MSBuild.ExtensionPack.BizTalk.xsd">(c) http://www.codeplex.com/MSBuildExtensionPack. This source is subject to the Microsoft Permissive License. See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx. All other rights reserved.</copyright>
-->
<xs:schema xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:include schemaLocation="Microsoft.Build.Core.xsd"/>
    <xs:element name="MSBuild.ExtensionPack.BizTalk.BizTalkApplication" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="TaskAction" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="AddReference"/>
                                <xs:enumeration value="CheckExists"/>
                                <xs:enumeration value="Create"/>
                                <xs:enumeration value="Delete"/>
                                <xs:enumeration value="DisableAllReceiveLocations"/>
                                <xs:enumeration value="EnableAllReceiveLocations"/>
                                <xs:enumeration value="Get"/>
                                <xs:enumeration value="RemoveReference"/>
                                <xs:enumeration value="StartAll"/>
                                <xs:enumeration value="StartAllOrchestrations"/>
                                <xs:enumeration value="StartAllSendPortGroups"/>
                                <xs:enumeration value="StartAllSendPorts"/>
                                <xs:enumeration value="StartReferencedApplications"/>
                                <xs:enumeration value="StopAll"/>
                                <xs:enumeration value="StopReferencedApplications"/>
                                <xs:enumeration value="UndeployAllPolicies"/>
                                <xs:enumeration value="UnenlistAllOrchestrations"/>
                                <xs:enumeration value="UnenlistAllSendPortGroups"/>
                                <xs:enumeration value="UnenlistAllSendPorts"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="Application"/>
                    <xs:attribute name="Database"/>
                    <xs:attribute name="Default" type="msb:boolean"/>
                    <xs:attribute name="Description"/>
                    <xs:attribute name="Force" type="msb:boolean"/>
                    <xs:attribute name="References"/>
                    <xs:attribute name="MachineName"/>
                    <xs:attribute name="LogExceptionStack" type="msb:boolean"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild.ExtensionPack.BizTalk.BizTalkReceiveHandler" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="TaskAction" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="CheckExists"/>
                                <xs:enumeration value="Create"/>
                                <xs:enumeration value="Delete"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="MachineName"/>
                    <xs:attribute name="DatabaseServer"/>
                    <xs:attribute name="Database"/>
                    <xs:attribute name="Force"/>
                    <xs:attribute name="HostName" type="msb:non_empty_string" use="required"/>
                    <xs:attribute name="CustomCfg"/>
                    <xs:attribute name="Exists"/>
                    <xs:attribute name="AdapterName"/>
                    <xs:attribute name="LogExceptionStack" type="msb:boolean"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild.ExtensionPack.BizTalk.BizTalkHostInstance" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="TaskAction" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="CheckExists"/>
                                <xs:enumeration value="Create"/>
                                <xs:enumeration value="Delete"/>
                                <xs:enumeration value="GetState"/>
                                <xs:enumeration value="Start"/>
                                <xs:enumeration value="Stop"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="MachineName"/>
                    <xs:attribute name="HostName" type="msb:non_empty_string" use="required"/>
                    <xs:attribute name="Exists"/>
                    <xs:attribute name="Force"/>
                    <xs:attribute name="AccountName"/>
                    <xs:attribute name="AccountPassword"/>
                    <xs:attribute name="State"/>
                    <xs:attribute name="LogExceptionStack" type="msb:boolean"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild.ExtensionPack.BizTalk.BizTalkAssembly" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="TaskAction" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="Add"/>
                                <xs:enumeration value="CheckExists"/>
                                <xs:enumeration value="Remove"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="MachineName"/>
                    <xs:attribute name="DatabaseServer"/>
                    <xs:attribute name="Application" type="msb:non_empty_string" use="required"/>
                    <xs:attribute name="DeploymentPath"/>
                    <xs:attribute name="Database"/>
                    <xs:attribute name="Assemblies" use="required"/>
                    <xs:attribute name="Exists"/>
                    <xs:attribute name="Gac"/>
                    <xs:attribute name="Force"/>
                    <xs:attribute name="LogExceptionStack" type="msb:boolean"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild.ExtensionPack.BizTalk.BizTalkHost" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="TaskAction" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="CheckExists"/>
                                <xs:enumeration value="Create"/>
                                <xs:enumeration value="Delete"/>
                                <xs:enumeration value="Update"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="AdditionalHostSettings"/>
                    <xs:attribute name="MachineName"/>
                    <xs:attribute name="DatabaseServer"/>
                    <xs:attribute name="Database"/>
                    <xs:attribute name="HostName" type="msb:non_empty_string" use="required"/>
                    <xs:attribute name="HostType"/>
                    <xs:attribute name="Use32BitHostOnly"/>
                    <xs:attribute name="Exists"/>
                    <xs:attribute name="Trusted"/>
                    <xs:attribute name="Tracking"/>
                    <xs:attribute name="Default"/>
                    <xs:attribute name="WindowsGroup"/>
                    <xs:attribute name="LogExceptionStack" type="msb:boolean"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild.ExtensionPack.BizTalk.BizTalkSendHandler" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="TaskAction" use="required">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="CheckExists"/>
                                <xs:enumeration value="Create"/>
                                <xs:enumeration value="Delete"/>
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:attribute>
                    <xs:attribute name="MachineName"/>
                    <xs:attribute name="DatabaseServer"/>
                    <xs:attribute name="Database"/>
                    <xs:attribute name="Force"/>
                    <xs:attribute name="HostName" type="msb:non_empty_string" use="required"/>
                    <xs:attribute name="CustomCfg"/>
                    <xs:attribute name="Exists"/>
                    <xs:attribute name="Default"/>
                    <xs:attribute name="AdapterName"/>
                    <xs:attribute name="LogExceptionStack" type="msb:boolean"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
</xs:schema>